package com.shrct.businessprocess.customerservice;

import com.shrct.businessprocess.customerservice.RCProjectMock;
import com.shrct.businessprocess.organization.RCEnterprise;
import com.shrct.businessprocess.organization.RCSupplier;
import com.shrct.businessprocess.product.RCBrand;
import com.shrct.businessprocess.product.RCIdentifiablePhysicalProductEntry;
import com.shrct.businessprocess.product.RCProductSpecification;
import com.shrct.businessprocess.product.RCServiceLevel;
import com.shrct.businessprocess.product.RCServiceResponseTime;
import edu.fudan.mylang.pf.IBaseService;
import java.util.Date;

/**
 * 新建／查找客户
 * 新建／查找供应商
 * 新建／查找品牌
 * 新建／查找合同
 * 新建逻辑设备
 * 新建厂商服务
 * 新建承诺服务
 */
public interface RCProductImportService extends IBaseService {
  public abstract RCServiceLevel lookupServiceLevel(final String name);
  
  public abstract RCServiceResponseTime lookupServiceResponseTime(final String name);
  
  public abstract RCEnterprise lookupCustomer(final String name);
  
  public abstract RCSupplier lookupSupplier(final String name);
  
  public abstract RCBrand lookupBrand(final String name);
  
  public abstract RCProjectMock lookupServiceContract(final String contractId, final RCEnterprise customer);
  
  public abstract RCProductSpecification lookupProductSpec(final String code);
  
  public abstract RCIdentifiablePhysicalProductEntry findOrImportProduct(final String projectid, final RCEnterprise customer, final RCSupplier supplier, final RCProductSpecification productSpec, final RCProjectMock contract, final String sid, final String location);
  
  public abstract RCIdentifiablePhysicalProductEntry importProduct(final String projectid, final RCEnterprise customer, final RCSupplier supplier, final RCProductSpecification productSpec, final RCProjectMock contract, final String sid, final String location);
  
  public abstract void importDefaultProductService(final String projectid, final String serviceName, final String serviceContractCode, final RCSupplier productSupplier, final RCIdentifiablePhysicalProductEntry product, final RCServiceLevel serviceLevel, final RCServiceResponseTime serviceResponseTime, final Integer months, final Date dueDate);
  
  public abstract void importDefaultPromisedService(final String projectid, final String serviceName, final RCIdentifiablePhysicalProductEntry product, final RCServiceLevel serviceLevel, final RCServiceResponseTime serviceResponseTime, final Integer months, final Date dueDate);
}
